#ifndef PPM_H_
#define PPM_H_
/*
 * Estrutura pixel onde contem os valores, inteiros, para os canais de cores vermelho, verde e azul
 */
typedef struct Pixel{
	unsigned char pixelRED;
	unsigned char pixelGREEN;
	unsigned char pixelBLUE;
	unsigned char energia;
}Pixel;

/*
 * Estrutura do tipo Imagem. Contem uma matriz RGB, o número de linhas e colunas da matriz e a intensidade
 * máxima de cada canal de Pixel.
 */
typedef struct Imagem {
	Pixel **imagem;
	int numColunas;
	int numLinhas;
	int intensidadeRGB;
}Imagem;


/*
 * Procedimento para inicializar uma estrutura Imagem
 * Parãmetro 1 = Estrutura Imagem.
 */
void InicializaImagem(Imagem *imagem);

/*
 * Função para alocar uma matriz do tipo PixelRGB
 * Parâmetro 1 = Número de linhas.
 * Parâmetro 2 = Número de colunas.
 * Retorna uma matriz do tipo Pixel alocada.
 */
Pixel **AlocaMatrizImagem(int linhas, int colunas);

/*
 * Atribui valores a imagem reduzida de uma coluna
 * Parâmetro 1 = Imagem original
 * Parametro 2 = Imagem reduzida
 */
void AtribuirValoresImagemReduzida(Imagem *orginal, Imagem *reduzida);


#endif /* PPM_H_ */
